package cn.zymall.goods.service;

import cn.zymall.common.model.Collect;
import cn.zymall.common.model.Spu;
import cn.zymall.common.model.UserCollect;
import cn.zymall.common.utils.response.HttpResult;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author lxh
 * @Description 商品业务层接口
 * @date 2020/8/21 16:14
 * @Classname SpuService
 **/

public interface SpuService extends IService<Spu> {

	/**
	 * 查询所有商品
	 * @return
	 */
	public List<Spu> findAll();



	/**
	 * 添加商品基本信息
	 * @param spu
	 */
	public Spu add(Spu spu);



	/**
	 * 添加商品详情
	 * @param spu
	 */
	public void addSpuDetail(Spu spu);


	/**
	 * 修改商品信息
	 * @param spu
	 */
	public void amend(Spu spu);
	/**
	 * 组合查询
	 * @param spu
	 * @return
	 */
	public List<Spu> composeFind(Spu spu);


	/**
	 * 审核商品
	 * @param spu
	 */
	public void examineStatus(Spu spu);


	/**
	 * 逻辑删除商品
	 * @param id
	 */
	public void deleteExamineStatus(Integer id);






	//商家端




	/**
	 * 提交审核
	 * @param spu
	 */
	public void submitExamine(Spu spu);




	/**
	 * 是否为推荐商品
	 * @param spu
	 */
	public void updateSpuRecommend(Spu spu);

	/**
	 * 根据用户查询收藏的商品
	 */
	public List<Spu> getCollectSpu(UserCollect userCollect);

	/**
	 * 批量移除收藏的商品
	 * @return
	 */
	public HttpResult removeCollectSpu(List<Collect> list);


	/**
	 * 根据商品id查询商品
	 * * @param id
	 * @return
	 */
	public Spu findByIdSpu(Integer id);



	/**
	 * 查询所有，多条件查询
	 * @return
	 */
	public PageInfo<Spu> findAllSpu(Integer page, Integer rows);

}
